/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package exercicio_06;

import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author Gustavo
 */
public class PaisControle {

    List<Pais> paises = new ArrayList();

    Pais p;

    public void executaControle() {

        String opcao = JOptionPane.showInputDialog("[1] [2]");
        if (opcao.equals("1")) {
            String nome = JOptionPane.showInputDialog("Digite o nome de um pais");
            paisDeFronteira(nome);
        } else {
            String nome = JOptionPane.showInputDialog("Digite o nome de um pais");
            fronteiraIncomunEntreOpaisSelecionado(nome);
        }
    }

    public void cadPais() {
        p = new Pais();
        p.setCodigo(1);
        p.setNome("Brasil");
        p.setPopulacao(170115000);
        p.setDimensao(88555000);
        paises.add(p);

        p = new Pais();
        p.setCodigo(2);
        p.setNome("Argentina");
        p.setPopulacao(170115000);
        p.setDimensao(88555000);
        paises.add(p);

        p = new Pais();
        p.setCodigo(3);
        p.setNome("Bolivia");
        p.setPopulacao(170115000);
        p.setDimensao(88555000);
        paises.add(p);

        p = new Pais();
        p.setCodigo(4);
        p.setNome("Perú");
        p.setPopulacao(170115000);
        p.setDimensao(88555000);
        paises.add(p);

        p = new Pais();
        p.setCodigo(5);
        p.setNome("Chile");
        p.setPopulacao(170115000);
        p.setDimensao(88555000);
        paises.add(p);

    }

    public void fronteira() {
//        List<Pais> paises = paises;
        List<Pais> fronteiras;
        for (Pais fronteira : paises) {
            if (fronteira.getCodigo() == 1) {
                fronteiras = new ArrayList();
                for (Pais front : paises) {
                    if ((front.getCodigo() == 2) || (front.getCodigo() == 3) || (front.getCodigo() == 4)) {
                        fronteiras.add(front);
                      
                    }
                }
                fronteira.setPaisesFroteira(fronteiras);
            }
        }
        for (Pais fronteira : paises) {
            if (fronteira.getCodigo() == 2) {
                fronteiras = new ArrayList();
                for (Pais fronteira1 : paises) {
                    if ((fronteira1.getCodigo() == 1) || (fronteira1.getCodigo() == 3) || (fronteira1.getCodigo() == 5)) {
                        fronteiras.add(fronteira1);
                    }
                }
                fronteira.setPaisesFroteira(fronteiras);
            }
        }
        for (Pais fronteira : paises) {
            if (fronteira.getCodigo() == 3) {
                fronteiras = new ArrayList();
                for (Pais fronteira1 : paises) {
                    if ((fronteira1.getCodigo() == 1) || (fronteira1.getCodigo() == 4) || (fronteira1.getCodigo() == 5)) {
                        fronteiras.add(fronteira1);
                    }
                }
                fronteira.setPaisesFroteira(fronteiras);
            }
        }
        for (Pais fronteira : paises) {
            if (fronteira.getCodigo() == 4) {
                fronteiras = new ArrayList();
                for (Pais fronteira1 : paises) {
                    if ((fronteira1.getCodigo() == 1) || (fronteira1.getCodigo() == 3) || (fronteira1.getCodigo() == 4)) {
                        fronteiras.add(fronteira1);
                    }
                }
                fronteira.setPaisesFroteira(fronteiras);
            }
        }
        for (Pais fronteira : paises) {
            if (fronteira.getCodigo() == 5) {
                fronteiras = new ArrayList();
                for (Pais fronteira1 : paises) {
                    if ((fronteira1.getCodigo() == 2) || (fronteira1.getCodigo() == 3) || (fronteira1.getCodigo() == 5)) {
                        fronteiras.add(fronteira1);
                    }
                }
                fronteira.setPaisesFroteira(fronteiras);
            }
        }
    }

    public void paisDeFronteira(String nome) {
        for (Pais pais : paises) {
            if (pais.getNome().equalsIgnoreCase(nome) && pais.getPaisesFroteira() != null) {
                System.out.println(pais.getNome() + " e um pais de fronteira");
            }
        }
    }

    public void fronteiraIncomunEntreOpaisSelecionado(String nome) {
        for (Pais pais : paises) {
            if (pais.getNome().equalsIgnoreCase(nome)) {
                System.out.println("Paises com fronteira incomun ao " + pais.getNome());
                for (Pais paise : pais.getPaisesFroteira()) {
                    System.out.println("Nome " + paise.getNome());
                }               
            }
        }
    }

//    public static void main(String[] args) {
//        PaisControle pc = new PaisControle();
//        pc.cadPais();
//        pc.fronteira();
//        List<Pais> paises = pc.paises;
//
//        for (Pais pais : paises) {
//            if (pais.getPaisesFroteira() != null) {
//                System.out.println("Pais");
//                System.out.println("Nome " + pais.getNome());
//                System.out.println("Fronteira");
//                for (Pais paise : pais.getPaisesFroteira()) {
//                    System.out.println("Nome " + paise.getNome());
//                }
//                System.out.println("===============================================");
//            }
//
//        }
//    }
}
